翻訳と辞書
Words near each other
・ Chasbaz-e Kusha
・ Chascanopsetta
・ Chascolytrum
・ Chascomús
・ Chascomús Partido
・ Chascomús railway and bus station
・ Chascomús railway station (1865)
・ Chascotheca
・ Chascotheca neopeltandra
・ Chase
・ Chase & Sanborn Coffee Company
・ Chase & Status
・ Chase & Status discography
・ Chase (1973 TV series)
・ Chase (2010 TV series)
Chase (algorithm)
・ Chase (band)
・ Chase (bank)
・ Chase (Chase album)
・ Chase (comics)
・ Chase (community), Wisconsin
・ Chase (Djumbo album)
・ Chase (dog)
・ Chase (film)
・ Chase (House episode)
・ Chase (instrumental)
・ Chase (Kumi Koda song)
・ Chase (L'Arc-en-Ciel song)
・ Chase (land)
・ Chase (lighting)


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Chase (algorithm) : ウィキペディア英語版
Chase (algorithm)
The Chase is a simple fixed-point algorithm testing and enforcing implication of data dependencies in database systems. It plays important roles in database theory as well as in practice.
It is used, directly or indirectly, on an everyday basis by people who design databases, and it is used in commercial systems to reason about the consistency and correctness of a data design. New applications of the chase in meta-data management and data exchange are still being discovered.
The Chase has its origins in two seminal papers, one by Alfred V. Aho, Catriel Beeri, and Jeffrey D. UllmanAlfred V. Aho, Catriel Beeri, and Jeffrey D. Ullman: "The Theory of Joins in Relational Databases", ACM Trans. Datab. Syst. 4(3):297-314, 1979.〕 and the other by David Maier, Alberto O. Mendelzon, and Yehoshua Sagiv.〔
David Maier, Alberto O. Mendelzon, and Yehoshua Sagiv: "Testing Implications of Data Dependencies". ACM Trans. Datab. Syst. 4(4):455-469, 1979.〕
In its simplest application the chase is used for testing whether the projection of a relation schema constrained by some functional dependencies onto a given decomposition can be recovered by rejoining the projections. Let ''t'' be a tuple in \pi_(R) \bowtie \pi_(R) \bowtie ... \bowtie \pi_(R) where ''R'' is a relation and ''F'' is a set of functional dependencies (FD). If tuples in ''R'' are represented as ''t1, ..., tk'', the join of the projections of each ''ti'' should agree with ''t'' on \pi_(R) where ''i'' = 1, 2, ..., ''k''. If ''ti'' is not on \pi_(R), the value is unknown.
The chase can be done by drawing a tableau (which is the same formalism used in tableau query). Suppose ''R'' has attributes ''A, B, ...'' and components of ''t'' are ''a, b, ...''. For ''ti'' use the same letter as ''t'' in the components that are in S''i'' but subscript the letter with ''i'' if the component is not in ''i''. Then, ''ti'' will agree with ''t'' if it is in S''i'' and will have a unique value otherwise.
The chase process is confluent.
==Example==
Let ''R''(''A'', ''B'', ''C'', ''D'') be a relation schema known obey the set of functional dependencies ''F'' = . Suppose ''R'' is decomposed into three relation schemas S1 = , S2 = and S3 = . Determining whether this decomposition is lossless can be done by performing a chase as show below.
The initial tableau for this decomposition is:

The first row represents S1. The components for attributes ''A'' and ''D'' are unsubscripted and those for attributes ''B'' and ''C'' are subscripted with ''i'' = 1. The second and third rows are filled in the same manner with S2 and S3 respectively.
The goal for this test is to use the given ''F'' to prove that ''t'' = (''a'', ''b'', ''c'', ''d'') is really in ''R''. To do so, the tableau can be chased by applying the FD’s in ''F'' to equate symbols in the tableau. Final tableau with a row that is the same as ''t'' implies that any tuple ''t'' in the join of the projections is actually a tuple of ''R''.
To perform the chase test, first decompose all FD’s in ''F'' so each FD has a single attribute on the right hand side of the "arrow". ''F'' remains unchanged because all of its FD's already has a single attribute on the right hand side. ''F'' = .
When equating two symbols, if one of them is unsubscripted, make the other be the same so that the final tableau can have a row that is exactly the same as ''t'' = (''a'', ''b'', ''c'', ''d''). Also, if both have their own subscript, change either to be the other. However, to avoid confusion, all of the occurrences should be changed.
First, apply ''A''→''B'' to the tableau. The first row is (''a'', ''b1'', ''c1'', ''d'') where ''a'' is unsubscripted and ''b1'' is subscripted with 1. Comparing the first row with the second one, change ''b2'' to ''b1''. Since the third row has ''a3'', ''b'' in the third row stays the same. The resulting tableau is:
Then consider ''B''→''C''. Both first and second rows have ''b1'' and notice that the second row has an unsubscripted ''c''. Therefore, the first row changes to (''a'', ''b1'', ''c'', ''d''). Then the resulting tableau is:
Now consider ''CD''→''A''. The first row has an unsubscripted ''c'' and an unsubscripted ''d'', which is the same as in third row. This means that the A value for row one and three must be the same as well. Hence, change ''a3'' in the third row to ''a''. The resulting tableau is:

At this point, notice that the third row is (''a'', ''b'', ''c'', ''d'') which is the same as ''t''. Therefore, this is the final tableau for the chase test with given ''R'' and ''F''. Hence, whenever ''R'' is projected onto S1, S2 and S3 and rejoined, the result is in ''R''. Particularly, the resulting tuple is the same as the tuple of ''R'' that is projected onto .

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Chase (algorithm)」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.